package com.copa.module.goods.manage;

import com.copa.domain.ResponseDto;
import com.copa.module.goods.domain.entity.CategoryEntity;
import com.copa.module.goods.domain.entity.GoodsAttributeEntity;
import com.copa.module.goods.domain.entity.GoodsProductEntity;
import com.copa.module.goods.domain.entity.GoodsSpecificationsEntity;
import com.copa.module.goods.domain.vo.GoodSpecificationsVo;
import com.copa.module.goods.domain.vo.GoodsAttributeVo;
import com.copa.module.goods.domain.vo.GoodsProductVo;
import com.copa.module.goods.domain.vo.GoodsUpdateVo;

import java.util.List;

/**
 * @author copa
 * @createDate 2021-01-08 12:36
 * @function
 */
public interface GoodsManage {

    /**
     * 查找类目是否存在
     * @param categoryId
     * @return
     */
    ResponseDto<CategoryEntity> findCategoryByCategoryId(Long categoryId);

    ResponseDto<Boolean> addGoodsAttribute(List<GoodsAttributeVo> goodsAttributeVo, Long goodsId);

    ResponseDto<Boolean> addGoodsProduct(List<GoodsProductVo> goodsProductVo, Long goodsId);

    ResponseDto<Boolean> addGoodsSpecifications(List<GoodSpecificationsVo> GoodSpecificationsVo, Long goodsId);

    ResponseDto<List<GoodsProductEntity>> findGoodsProductByGoodsId(Long goodsId);

    ResponseDto<List<GoodsAttributeEntity>> findGoodsAttributeByGoodsId(Long goodsId);

    ResponseDto<String> putGoodsAttribute(GoodsUpdateVo goodsUpdateVo);

    ResponseDto<String> putGoodsProduct(GoodsUpdateVo goodsUpdateVo);

    ResponseDto<String> putGoodsSpecifications(GoodsUpdateVo goodsUpdateVo);

    ResponseDto<List<GoodsSpecificationsEntity>> findGoodsSpecificationsByGoodsId(Long goodsId);
}
